package io.gitee.zhangbinhub.admin.vo

import io.swagger.v3.oas.annotations.media.Schema
import jakarta.validation.constraints.NotBlank

/**
 * @author zhang by 14/06/2019
 * @since JDK 11
 */
@Schema(description = "流程任务")
data class ProcessTaskVo(
    @Schema(description = "流程实例id")
    var processInstanceId: String? = null,

    @Schema(description = "任务名称")
    var name: String? = null,

    @Schema(description = "任务id")
    var taskId: String? = null,

    @Schema(description = "任务定义键")
    var taskDefinitionKey: String? = null,

    @Schema(description = "父任务id")
    var parentTaskId: String? = null,

    @Schema(description = "执行实例id")
    var executionId: String? = null,

    @Schema(description = "业务键")
    var businessKey: String? = null,

    @Schema(description = "是否未被认领")
    var unClaimed: Boolean = true,

    @Schema(description = "处理人")
    var user: UserVo? = null,

    @Schema(description = "流程自定义参数")
    var params: MutableMap<String, Any> = mutableMapOf(),

    @Schema(description = "本地自定义参数")
    var localParams: MutableMap<String, Any> = mutableMapOf(),

    @Schema(description = "任务表单字段")
    var formFields: MutableMap<String, Any> = mutableMapOf(),

    @Schema(description = "任务自定义属性")
    var properties: MutableMap<String, String> = mutableMapOf(),

    @Schema(description = "任务创建时间")
    var createTime: Long = 0,

    @Schema(description = "流程定义键")
    var processDefinitionKey: String? = null,

    @Schema(description = "流程名称")
    var flowName: String? = null,

    @Schema(description = "标题")
    var title: String? = null,

    @Schema(description = "流程描述")
    var description: String? = null,

    @Schema(description = "流程发起人")
    var startUser: UserVo? = null,

    @Schema(description = "任务拥有者")
    var taskOwnerUser: UserVo? = null,

    @Schema(description = "任务是否已委派")
    var delegated: Boolean = false,

    @Schema(description = "待办人列表")
    var pendingUserList: List<UserVo> = mutableListOf()
)
